package com.javasm.mingming.schedule;

import com.javasm.mingming.news.service.NewsService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;

/**
 * @author javasm
 * @version 0.1
 * @className TestTask
 * @descriptioin:
 * @date 2025/1/17 9:44
 * @since jdk11
 */
//@Component
public class TestTask {

    Logger logger = LogManager.getLogger(TestTask.class);

    //我希望多久/什么频率, 执行一次/多次 当前的方法
    //每隔5秒执行1次
    //cron="秒 分 小时 日期 月份 星期 年"
    //星期和日期互斥,不能同时设置,必须有1个是?  年是可以省略的
    @Scheduled(cron = "0/5 * * * * ?")
    @Async//异步
    public void f1(){
        //logger.info("---------------测试f1 ------每隔5秒执行1次");
    }
    //从第10秒开始,每秒执行1次,第20秒的时候终止
    @Scheduled(cron = "10-20 * * * * ?")
    @Async//可选,是否加异步,取决于自己
    public void f2(){
        //logger.info("===========f2--从第10秒开始,每秒执行1次,第20秒的时候终止");
    }

    @Resource
    NewsService newsService;

    @Scheduled(cron = "0 0 0/1 * * ?")
    @Async
    public void f3(){
        logger.info("每天0:0:0开始同步新闻列表,每隔1个小时执行1次");
        newsService.syncNews();
    }
}
